Skip to content
On this page

Clean Code

도서 링크: https://www.yes24.com/Product/Goods/11681152

CLean Code

함수

느낀점 처음부터 완벽한 규칙기반의 함수를 작성하는 것은 무리가 있다.
노하우가 쌓여간다면, 누구나 읽기 쉬운 함수를 작성할 수 있을 것 같다.

작게 만들기

함수는 가능한 하나의 역할만 하도록 만든다.

switch 문은 사용을 지양한다.

하지만 불가피하게 사용할 수 밖에 없는 상황이 존재한다. 그렇다면 다형성적 객체를 생성하는 코드안에서 사용한다.

서술적인 이름을 사용한다.

한가지 역할만 하면서 함수의 이름이 해당 코드를 설명하면, 가장 좋은 케이스 이름을 지을때는 일관적인 이름을 사용해야한다.

예를 등어 생성이라고 하는 동작을 create, add 등 다양하게 사용할 수 있지만, 해당 프로젝트에서 사용하는 규칙을 정해서 하나만 사용하는 것이 좋다.

함수의 인수

플래그 인수
함수에 boolean 값을 넘긴다는 것 자체가 이미 해당 함수가 2가지 일을 하고 있는 것, 참일때 로직, 거짓일때 로직

함수에 인수 관련 키워드 추가하기 함수를 작성하다보면 인수의 순서가 헷갈릴 수 있는데, 함수에서 해당 인수의 순서를 명확하게 드러내는 방법또한 존재한다.

부수효과를 일으키지 않는다.

책의 예제에서는 checkPassword 로직에서 user 의 세션을 날려버린다. 이렇게 되면 세션을 날려도 괜찮은 부분에서만 checkPassword 를 사용할 수 있다. 부수효과는 의도하지 않는 상황을 일으킨다.

오류 코드 분기 보다 예외를 사용한다.

오류 처리 로직을 분리해서 본문 코드가 깔끔해진다. try/catch 를 별도 함수로 뽑아서 사용하면, 하나의 함수에서 오류에 대한 처리를 하기 때문에, 로직을 이해하기 쉬워진다.

반복하지 않는다.

반복은 코드의 길이를 늘리고, 알고리즘이 변하면 네곳을 수정해야한다.

주석

느낀점

주석은 거의 대부분 불필요하다.

경솔하고 근거없는 주석은 코드를 이해하기 어렵게 만든다. 주석은 언제나 실패를 의미한다 프로그래머들이 주석을 유지 보수하기는 현실적으로 불가능하다.

좋은 주석

주석은 가능한 사용하지 않으면 좋지만, 불가피한 상황에 사용하는 경우가 있다.

위 예시 외에 거의 모든 주석은 코드로 해결가능하다.

6. 객체와 자료구조

최근 수정 일: 2023. 10. 24.